/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ec.socialfun.controladores;

import com.ec.socialfun.datamanager.UsuariosConReservaDataManager;
import com.ec.socialfun.entidades.Evento;
import com.ec.socialfun.servicios.EventoFacade;
import com.ec.socialfun.servicios.EventoUsuarioFacade;
import com.ec.socialfun.servicios.UsuarioSucursalFacade;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.model.SelectItem;
import org.jboss.logging.Logger;

/**
 *
 * @author xavier
 */
@ManagedBean
@RequestScoped
public class UsuariosConReservaControlador extends PadreControlador {
private static final Logger LOG = Logger.getLogger(UsuariosConReservaControlador.class.getName());
    @EJB
    private EventoFacade eventoFacade;
    @EJB
    private UsuarioSucursalFacade usuarioSucursalFacade;
    @ManagedProperty(value = "#{usuariosConReservaDataManager}")
    private UsuariosConReservaDataManager usuariosConReservaDataManager;
    @EJB
    private EventoUsuarioFacade eventoUsuarioFacade;
    
    public UsuariosConReservaControlador() {
    }
    
    @Override
    public void iniciarDatos() {
        if(eventoFacade.recuperarEventosSucursal(usuarioSucursalFacade.recuperaCodigoSucursal(obtenerUsuarioLogeado())) != null)
        {
            LOG.info("Iniciar Datos EventosSucursal ");
            getUsuariosConReservaDataManager().setListaEventos(eventoFacade.recuperarEventosSucursal(usuarioSucursalFacade.recuperaCodigoSucursal(obtenerUsuarioLogeado())));
        }
        else{
            LOG.info("NULL");
        }
        
    }

    public UsuariosConReservaDataManager getUsuariosConReservaDataManager() {
        return usuariosConReservaDataManager;
    }

    public void setUsuariosConReservaDataManager(UsuariosConReservaDataManager usuariosConReservaDataManager) {
        this.usuariosConReservaDataManager = usuariosConReservaDataManager;
    }
    
    public void seleccionaEvento() {
        LOG.info("change " +getUsuariosConReservaDataManager().getEvento().getEvCodigo());
        //getUsuariosConReservaDataManager().setEvento(eventoFacade.recuperaPorCodigo(getUsuariosConReservaDataManager().getEvento().getEvCodigo()));
        if (getUsuariosConReservaDataManager().getEvento() == null || getUsuariosConReservaDataManager().getEvento().getEvCodigo() == null) {
            LOG.info("EVENTO NULL");
            this.mensajeError("Seleccione un Evento");
        } else {
            LOG.info("EVENTO SELECCION: "+getUsuariosConReservaDataManager().getEvento().getEvCodigo());          
            getUsuariosConReservaDataManager().setUsuariosConReserva(eventoUsuarioFacade.recuperarListaEventoUsuarioReservado(getUsuariosConReservaDataManager().getEvento().getEvCodigo()));
            LOG.info("usuariosConReserva "+getUsuariosConReservaDataManager().getUsuariosConReserva());
        }    
    }
    public List<SelectItem> getSelectItemEventos() {
        List<SelectItem> lista = getSelectItemPorDefecto();
        List<Evento> listaEventos = getUsuariosConReservaDataManager().getListaEventos();
        for (Evento eventoTmp : listaEventos) {
            lista.add(new SelectItem(eventoTmp, eventoTmp.getEvDescripcion()));
        }
        return lista;
    }
    
}
